package com.dwxt.cdms.controller.base;

import com.dwxt.cdms.entity.base.DictValue;
import com.dwxt.cdms.vo.base.SelectDictValueVo;
import com.dwxt.cdms.service.DictValueService;
import com.dwxt.common.base.BaseResult;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 数据字典管理Controller
 *
 * @author 况佳卓
 * @date 2020-09-11 10:46
 */
@RestController
@RequestMapping("/cdms/dictValue")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class DictValueController {

    private final DictValueService dictValueService;


    /**
     * @方法名：selectDictByParentId
     * @描述： 根据父id查询其字典数据
     * @作者： kjz
     * @日期： Created in 2020/9/11 10:41
     */
    @RequestMapping("/selectDictByParentId")
    public BaseResult selectDictByParentId(@RequestParam String parentId) {
        List<DictValue> result = this.dictValueService.selectDictByParentId(parentId);
        return BaseResult.ok(result);
    }

    /**
     * @方法名：selectChildDictListByParent
     * @描述： 根据父级的code和value查询其字典数据
     * @作者： kjz
     * @日期： Created in 2020/9/11 10:43
     */
    @RequestMapping("/selectChildDictListByParent")
    public BaseResult selectChildDictListByParent(
            @RequestParam String dictCode, @RequestParam String dictValue) {
        List<DictValue> result = this.dictValueService.selectChildDictListByParent(dictCode,dictValue);
        return BaseResult.ok(result);
    }

    /**
     * @方法名：selectDictByCodeAndValue
     * @描述： 根据字典code和value查询字典信息
     * @作者： kjz
     * @日期： Created in 2020/9/11 10:44
     */
    @RequestMapping("/selectDictByCodeAndValue")
    public BaseResult selectDictByCodeAndValue(@RequestParam String dictCode,@RequestParam String dictValue) {
        DictValue result = this.dictValueService.selectDictByCodeAndValue(dictCode,dictValue);
        return BaseResult.ok(result);
    }

    /**
     * @方法名：selectDictByCode
     * @描述： 根据字典code查询字典信息
     * @作者： kjz
     * @日期： Created in 2020/9/11 10:44
     */
    @RequestMapping("/selectDictByCode")
    public BaseResult selectDictByCode(@RequestParam String dictCode) {
        List<DictValue> result = this.dictValueService.selectDictByCode(dictCode);
        return BaseResult.ok(result);
    }

    /**
     * @方法名：selectDictValueByCondition
     * @描述： 后台-按条件查询数据字典(带分页)
     * @作者： kjz
     * @日期： Created in 2020/9/11 10:45
     */
    @RequestMapping(value = "/selectDictValueByCondition")
    public BaseResult selectDictValueByCondition(@RequestBody SelectDictValueVo selectDictValueVo)
    {
        PageInfo<DictValue> pageInfo = this.dictValueService.selectDictValueByCondition(selectDictValueVo);
        return BaseResult.ok(pageInfo);
    }

    /**
     * @方法名：updateIsUsing
     * @描述： 后台-更改字典的启用与禁用
     * @作者： kjz
     * @日期： Created in 2020/9/11 10:46
     */
    @RequestMapping(value = "/updateIsUsing")
    public BaseResult updateIsUsing(@RequestParam String id,@RequestParam String isUsing){
        int result = this.dictValueService.updateIsUsing(id,isUsing);
        return BaseResult.ok(result);
    }
}
